<?php

	namespace model;

		require_once ("view/HTMLPageView.php");
		require_once ("view/HTMLloginView.php");
		require_once ("random_string.php");

		class User
		{
			/**
			 * @var String
			 */
			private $correctName = "Admin";
			/**
			 * @var String
			 */
			private $correctPassW = "123";
			/**
			 * @var String
			 */
			private $userName;
			/**
			 * @var String
			 */
			private $userPassW;

			/**
			 * @param String $userName
			 * @param String $userPassW
			 */
			public function __construct($userName, $userPassW)
			{
				$pageView = new \view\HTMLPageView();
				$userName = trim($userName);
				$userPassW = trim($userPassW);

				//TODO Skapa regex, trimma mm
				if (strlen($userName) < 3)
				{
					//throw new \Exception("Namnet är för kort");
					echo $pageView->getPage
					("Namnet är för kort", "Ej Inloggad", null);
				}
				if (strlen($userName) > 15)
				{
					//throw new \Exception("Namnet är för långt");
					echo $pageView->getPage
					("Namnet är för långt", "Ej Inloggad", null);
				}
				if (strlen($userPassW) < 3)
				{
					//throw new \Exception("Lösenordet är för kort");
					echo $pageView->getPage
					("Lösenordet måste vara minst 3 tecken", "Ej Inloggad", $userName);
				}
				else
				{
					$this->userName = $userName;
					$this->userPassW = $userPassW;
				}
			}
			
			/**
			* @param  User $user
			*/
			public function validateUser(User $user)
			{
				$pageView = new \view\HTMLPageView();
				$loginPageView = new \view\HTMLloginView();

				//If values are correct
				if ($this->userName == $this->correctName && $this->userPassW == $this->correctPassW)
				{
					//If user chooses to stay logged in (Checked box)
					if (isset($_POST["CheckBox"]) && $_POST["CheckBox"] == 'yes')
					{
						$myRandomPassword = new \random_string();
						$this->tempCorrectPassW = $myRandomPassword->createRandomString();
						$expireTime = time() + 10;

						setcookie("Name", $this->userName, $expireTime);
						setcookie("Password", $this->tempCorrectPassW, $expireTime);

						$validateCookieData = array(
							"Name" => $this->userName,
							"Password" => $this->tempCorrectPassW,
							"ExpireTime" => $expireTime
						);

						file_put_contents("cookieExpireTime.txt",
						serialize($validateCookieData));

						echo $loginPageView->getLoginPage
						("Hej och Välkommen. ", "Vi kommer ihåg dig " . $this->userName, "Inloggad");
					}

					$session = new \model\Session();
					$session->setSession($this->userName, $this->userPassW);
					echo $loginPageView->getLoginPage
					("Hej och Välkommen. ", "Du är inloggad som " . $this->userName, "Inloggad");
				}
				else if ($this->userName == $this->correctName && $this->userPassW != $this->correctPassW)
				{
					echo $pageView->getPage
					("Fel lösenord och/eller användarnamn.", "Ej Inloggad", $this->userName);
				}
				else if ($this->userName != $this->correctName && $this->userPassW == $this->correctPassW)
				{
					echo $pageView->getPage
					("Fel användarnamn och/eller lösenord.", "Ej Inloggad", $this->userName);
				}
				else
				{
					echo $pageView->getPage
					("Fel användaruppgifter. Försök igen!", "Ej Inloggad", null);
				}
			}


		}
